[1]:
import sys
sys.path.append('../src')
Constraint optimization#
[2]:
# import libraries
import jax.numpy as jnp
from optymus import Optimizer
[3]:
def f(x):
return x[0]**2 + x[1]**2
def constraint1(x):
return x[0] + x[1] - 1
def constraint2(x):
return x[0] - x[1]
def constraint3(x):
return x[1] - 0.5
[4]:
initial_guess = jnp.array([0.0, 5.0])
cons_list = [constraint1, constraint2, constraint3]
opt = Optimizer(f, cons_list, initial_guess, method='newton_raphson')
Newton-Raphson 0: 2%|▏ | 2/100 [00:02<02:09, 1.33s/it]
[5]:
opt.print_report()
[5]:
| Method | Initial Guess | Optimal Solution | Objective Function Value | Number of Iterations | Time Elapsed | |
|---|---|---|---|---|---|---|
| Optimization Results | newton_raphson | [0.0, 5.0] | [-2.220446049250313e-16, -1.1102230246251565e-16] | 6.162975822039155e-32 | 2 | 2.656502 |
[6]:
opt.plot_results(show=True, notebook=True)